import type { TableColumnProps } from 'ant-design-vue';

export interface OptionType {
  label: string;
  value: any;
  disabled?: boolean;
  children?: Array<OptionType>;
}

export type ColumnType = {
  valueType?:
    | 'text'
    | 'number'
    | 'select'
    | 'radio'
    | 'datePicker'
    | 'index'
    | 'operation'
    | 'radioGroup'
    | 'input'
    | 'checkbox'
    | 'checkboxGroup'
    | 'rangePicker'
    | 'richText'
    | 'switch'
    | 'upload';
  format?: any;
  options?: Array<OptionType>;
  isShow?: boolean;
  hideInSearch?: boolean;
  hideInTable?: boolean;
  hideInForm?: boolean;
  rules?: Array<any>;
  showTime?: boolean;
  valueFormat?: any;
  onClick?: (params?: Object) => void;
  disabled?: boolean;
  customProps?: Object;
  value?: any;
} & TableColumnProps;
